home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / architecture / i386 / tss.h < prev   
Text File  |  1992-05-15  |  2KB  |  94 lines

  1. /*
  2.  * Copyright (c) 1992 NeXT Computer, Inc.
  3.  *
  4.  * Intel386 Family:    Task State Segment.
  5.  *
  6.  * HISTORY
  7.  *
  8.  * 29 March 1992 David E. Bohman at NeXT
  9.  *    Created.
  10.  */
  11.  
  12. #import <architecture/i386/sel.h>
  13.  
  14. /*
  15.  * Task State segment.
  16.  */
  17.  
  18. typedef struct tss {
  19.     sel_t        oldtss;
  20.     unsigned int        :0;
  21.     unsigned int    esp0;
  22.     sel_t        ss0;
  23.     unsigned int        :0;
  24.     unsigned int    esp1;
  25.     sel_t        ss1;
  26.     unsigned int        :0;
  27.     unsigned int    esp2;
  28.     sel_t        ss2;
  29.     unsigned int        :0;
  30.     unsigned int    cr3;
  31.     unsigned int    eip;
  32.     unsigned int    eflags;
  33.     unsigned int    eax;
  34.     unsigned int    ecx;
  35.     unsigned int    edx;
  36.     unsigned int    ebx;
  37.     unsigned int    esp;
  38.     unsigned int    ebp;
  39.     unsigned int    esi;
  40.     unsigned int    edi;
  41.     sel_t        es;
  42.     unsigned int        :0;
  43.     sel_t        cs;
  44.     unsigned int        :0;
  45.     sel_t        ss;
  46.     unsigned int        :0;
  47.     sel_t        ds;
  48.     unsigned int        :0;
  49.     sel_t        fs;
  50.     unsigned int        :0;
  51.     sel_t        gs;
  52.     unsigned int        :0;
  53.     sel_t        ldt;
  54.     unsigned int        :0;
  55.     unsigned int    t    :1,
  56.                     :15,
  57.             io_bmap    :16;
  58. } tss_t;
  59.  
  60. #define TSS_SIZE(n)    (sizeof (struct tss) + (n))
  61.  
  62. /*
  63.  * Task State segment descriptor.
  64.  */
  65.  
  66. typedef struct tss_desc {
  67.     unsigned short    limit00;
  68.     unsigned short    base00;
  69.     unsigned char    base16;
  70.     unsigned char    type    :5,
  71. #define DESC_TSS    0x09
  72.             dpl    :2,
  73.             present    :1;
  74.     unsigned char    limit16    :4,
  75.                 :3,
  76.             granular:1;
  77.     unsigned char    base24;
  78. } tss_desc_t;
  79.  
  80. /*
  81.  * Task gate descriptor.
  82.  */
  83.  
  84. typedef struct task_gate {
  85.     unsigned short        :16;
  86.     sel_t        tss;
  87.     unsigned int        :8,
  88.                 type    :5,
  89. #define DESC_TASK_GATE    0x05
  90.             dpl    :2,
  91.             present    :1,
  92.                 :0;
  93. } task_gate_t;
  94.